Method for generating video data for trick play

ABSTRACT

A transmission server reads out encoded data files from storage medium such as memory in itself and removable medium, and transmits the read-out file to the reproduction apparatus upon the request from the reproduction apparatus. A plurality of encoded video files is corresponding to an AV content. These encoded data files correspond to different reproduction modes respectively. The transmission server transmits an encoded file to the reproduction apparatus which corresponds to the requested AV content and the requested reproduction mode. The amount of the fast-forward data is reduced than that of the original data, since the fast-forward data is a part of the original data.

TECHNICAL FIELD

The present invention relates to a trick play of digital video data.

BACKGROUND ART

A fast-forward mode or a reverse mode is known as a trick mode amongre-production modes of digital video data. The Patent Citations 1 and 2disclose techniques which provide higher quality images using the trickmode reproduction process.

The Patent Citation 1 discloses a method whereby separate trick playdata that is only for reproduction in a fast-forward mode and in afast-reverse mode is prepared in addition to normal play data to enablethe switching of signals to be read-out depending on the reproductionmodes requested from a terminal. The trick play data for fast-forwardreproduction at n-times play speed has frame numbers of 1, n+1, 2n+1 . .. . Such a method enables a quick switch from a normal mode to a trickmode and vice versa, and, shortens the time for reading-out the data.

The Patent Citation 2 discloses an apparatus for reproducing encodedvideo data utilizing the Motion Picture Coding Experts Group (MPEG)video compression protocol. This apparatus reproduces encoded video datain a fast-forward mode at n-times play speed by only decoding I-picturesand P-pictures when the frame interval of anchor frames is n (n=2, 3).This apparatus also performs fast-forward playback at twice the playspeed by outputting the same frame twice for every two frames when theframe interval of the anchor frames equals three. The frame interval ofthe anchor frames is a frame interval between I-picture and P-picture ora frame interval between P-pictures.

Patent Citation 1: Japanese Laid Open Patent H06-133262 Patent Citation2: Japanese Laid Open Patent H11-155129 DISCLOSURE OF INVENTIONTechnical Problem

A problem occurs when using the process for controlling trick playdescribed in Patent Citation 1. The method of Patent Citation 1 removesframes at a regular frame interval and decodes the remaining frames assequential frames. Therefore, the application of this method to encodedvideo data utilizing inter-frame compression is difficult.

The reproduction apparatus described in Patent Citation 2 can reproduceencoded video data utilizing inter-frame compression. However, thisapparatus reproduces I-pictures and P-pictures only. Therefore, thereproduction apparatus outputs the same frame repeatedly when outputtinganchor frames in display order causing the reproduction at a speed thatis faster than a desired speed. For example, this can occur when a frameinterval of anchor frames is three and twice the play speed is desiredfor reproduction in a fast-forward mode. In this case, a display controlis required at the reproduction apparatus so that it repeatedly outputsthe same frame once every two frames. Thus, a conventional MPEG decodercannot be employed since in order to enable the display control, a Msignal indicating the frame interval of anchor frames must be providedby a decoder with a display control unit. Moreover, the process ofrepeatedly outputting the same frame deteriorates image quality atfast-forward playback.

In addition, transmission of an encoded video data stream from a serverto the reproduction apparatus adds an extra burden on a network in orderto facilitate reproduction at n-times play speed because the steps ofskipping B-pictures and selectively decoding I- and P-pictures requireall encoded frames, including B-pictures, to be downloaded from theserver to the reproduction apparatus over the network and executed atthe end of the reproduction apparatus. Accordingly, it is necessary totransmit the encoded video data at n-times speed over the network inorder to achieve reproduction in a fast-forward mode at n-times playspeed on the reproduction apparatus.

The object of the present invention therefore, is to provide anapparatus for reproducing encoded video data utilizing inter-framecompression capable of producing smoother trick play performance.Another object of the present invention is to avoid placing additionalload on a network when transmitting an encoded video data stream inorder to achieve a trick play operation.

Technical Solution

A first aspect of the present invention provides a data generatingmethod including the steps of generating normal play data by encodinglow-compression or non-compression video data, generating fast-forwarddata; and associating the intra frames in the normal play data with theintra frames in the fast-forward data. The normal play data includesintra frames and non-intra frames. The intra frames are decodedindependently. The non-intra frames are decoded by referencing precedingand/or subsequent frames. The fast-forward data includes intra frames inthe normal play data and a part of non-intra frames in the normal playdata.

The fast-forward data may be generated by selectively obtaining a partof the non-intra frames and the intra frames while the non-intra framesand the intra frames are being generated one after another in the stepof generating the normal play data.

The fast-forward data may be generated by removing a part of thenon-intra frames from the normal play data after the normal play data isgenerated.

Another aspect of the present invention provides a data generatingmethod including the steps of generating normal play data by encodinglow-compression or non-compression video data, and generatingfast-forward data. Each intra frame in the normal play data and eachintra-frame in the fast-forward data have the same relative addresswhich is relative to the heads of the normal play data and thefast-forward data respectively. The normal play data includes intraframes and non-intra frames. The intra frames are decoded independently.The non-intra frames are decoded by referencing preceding and/orsubsequent frames. The fast-forward data includes intra frames in thenormal play data, a part of non-intra frames in the normal play data,and dummy data. The dummy data replaces the other non-intra frames whichare included only in the normal play data.

The fast-forward data may be generated by selectively obtaining a partof the non-intra frames and the intra frames while the non-intra framesand intra frames are being generated one after another in the step ofgenerating the normal play data.

The fast-forward data may be generated by removing a part of thenon-intra frames in the normal play data after generating the normalplay data, and inserting dummy data that replaces the removed non-intraframes.

Another aspect of the present invention provides a storage medium withencoded video data thereon. The encoded video data includes normal playdata and fast-forward data. The normal play data includes intra framesand non-intra frames. The intra frames are decoded independently. Thenon-intra frames are decoded by referencing preceding and/or subsequentframes. The fast-forward data includes intra frames in the normal playdata and a part of non-intra frames in the normal play data.

These and other objects, features, aspects and advantages of the presentinvention will become apparent to those skilled in the art from thefollowing detailed description, which, taken in conjunction with theannexed drawings, discloses a preferred embodiment of the presentinvention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a simplified block diagram of a reproduction system in thefirst embodiment of the present invention.

FIG. 2 shows a simplified block diagram of a hardware structure of atransmission server in FIG. 1.

FIG. 3 shows a simplified block diagram of a hardware structure of areproduction apparatus in FIG. 1.

FIG. 4 shows a simplified block diagram of a functional structure of thetransmission server in FIG. 1.

FIG. 5(A) shows an explanatory view of an original file and FIG. 5(B)shows an explanatory view of a fast-forward file derived from theoriginal file illustrated in FIG. 5(A).

FIG. 6(A) shows another explanatory view of original file and FIG. 6(B)shows another explanatory view of a fast-forward file derived from theoriginal file illustrated in FIG. 6(A).

FIG. 7(A) shows a conceptual view of a stream table and FIG. 7(B) showsa conceptual view of an offset table.

FIG. 8 shows a simplified block diagram of a functional structure of thereproduction apparatus in FIG. 1.

FIG. 9 shows a flowchart illustrating an inventive method for generatinga trick-play data file executed by the transmission server in FIG. 1.

FIG. 10 shows a flowchart illustrating an inventive method forreading-out and transmitting data files executed by the transmissionserver in FIG. 1.

FIG. 11 shows a flowchart illustrating a method for reproducing dataexecuted by the reproduction apparatus in FIG. 1.

FIG. 12 shows a simplified block diagram of a hardware structure of areproduction apparatus in a second embodiment.

FIG. 13 shows a simplified block diagram of a functional structure ofthe reproduction apparatus in FIG. 12.

FIG. 14(A) shows an explanatory view of an original file and FIG. 14(B)shows an explanation view of a fast-forward file derived from theoriginal file illustrated in FIG. 14(A).

FIG. 15 shows a flowchart illustrating an inventive method forreading-out and reproducing data executed by the reproduction apparatusin FIG. 12.

FIG. 16(A) is an explanatory view of an original file derived from asource video data. FIG. 16(B) is an explanatory view of a reverse filederived from the same source video data in FIG. 16(A).

FIG. 17(A) shows pictures read-out from the original file when thereproduction mode is a normal play mode. FIG. 17(B) shows picturesread-out from the reverse file when the reproduction mode is a reversemode. FIG. 17(C) is an explanatory view of pictures output on thereproduction apparatus before and after the reproduction mode isswitched.

FIG. 18 is an explanatory view of a method for generating a reverse filefrom a source video data.

FIG. 19(A) illustrates one method of rearranging fields in each frameand frames. FIG. 19(B) illustrates another method of rearranging fieldsin each frame and frames.

FIG. 20 is an explanatory view of a switching table.

FIG. 21 shows a flowchart illustrating a method for generating a reversefile executed by the transmission server.

FIG. 22(A) shows a flowchart illustrating another inventive method forgenerating a trick-play data file and an offset table executed by acomputer. FIG. 22(B) shows a flowchart illustrating another inventivemethod for generating a trick-play data file including dummy dataexecuted by a computer.

BEST MODE FOR CARRYING OUT THE INVENTION The First Embodiment TheOverview of the Present Invention

FIG. 1 illustrates a simplified block diagram of a reproduction system100 in the first embodiment of the present invention. The reproductionsystem 100 includes a transmission server 10 and a reproductionapparatus 20. The transmission server 10 and the reproduction apparatus20 are connected via a network 30 and communicate with each other.

The transmission server 10 reads out encoded video data files recordedon a storage medium and transmits a video data stream upon a requestfrom the reproduction apparatus 20. The storage medium may be memory onthe transmission server 10 itself or a removable storage medium. Each AVcontent corresponds to a plurality of encoded video data files generatedfor different reproduction modes. The transmission server 10 transmitsan encoded video data file corresponding to a requested AV content and arequested reproduction mode to the reproduction apparatus 20. Inaddition, the transmission server 10 switches encoded video data filesto be read-out upon a mode switching request from the reproductionapparatus 20. In other words, the transmission server 10 switches a filecorresponding to pre-request reproduction mode to a file correspondingto post-request reproduction mode.

A plurality of encoded video data files corresponding to an AV contentincludes an original encoded data file for normal mode at n=1(hereinafter, an “original file”) and at least one encoded data file fortrick-play mode at n−(n=1 or n>1) times play speed (hereinafter, a“trick-play file”). An original file is generated by utilizing aconventional inter-frame compression such as MPEG 2 or MPEG 4. Tosimplify the following explanation, an original file compressed by MPEG2 will be used as an example in this embodiment. The trick-play file maybe an encoded data file for fast-forward reproduction at n−(n>1) timesplay speed. The trick-play file may also be an encoded data file forreverse reproduction at n−(n=1) times play speed. A fast-forward file isderived from an original file by removing part of the frames in theoriginal file. Accordingly, the data amount of the fast-forward file isreduced than that of the original file. Therefore, the reproductionapparatus 20 performs reproduction in a fast-forward mode withoutincreasing the read-out speed or the transmission speed of thefast-forward data on the network 30 when the transmission server 10transmits an encoded video data stream to the reproduction apparatus 20.The term “frame” as used herein refers to the encoded data that can beused to represent an image, and generally corresponds to a picture inMPEG protocol.

Hardware Configuration

(1) Transmission Server

FIG. 2 shows an example of a hardware diagram of the transmission server10. The transmission server 10 can be configured by a computer. Thetransmission server 10 includes a drive 101, a hard disk drive (HDD)102, a ROM 103, a RAM 104, a CPU 105, a communication interface (I/F)106, an input interface 107, a decoder unit 108, a MPEG encoder 109, anda BUS 110 that connects the above-mentioned elements. In addition tothese elements, the transmission server 10 may further include an AVunit (not shown) which obtains analog AV data from outside and convertssuch analog AV data into digital AV data.

The drive 101 reads out encoded video data files from a removablestorage medium. The removable storage medium may include, for example,an optical disk, a magnetic disk, an optical-magnetic disk, a Blu-raydisk, or a semiconductor memory. The drive 101 is an optional elementfor the transmission server 10. The drive 101, however, enables thetransmission server 10 to read-out encoded video data files recorded onthe removable storage medium.

The HDD 102 correlatively stores a plurality of encoded video data filesand a plurality of voice data files for each AV content. Each encodedvideo data file and each voice data file correspond to a reproductionmode at a certain play speed. In this embodiment, reproduction isperformed either in a normal mode or a fast-forward mode.

The ROM 103 stores control programs and data necessary for executing acontrol program.

The RAM 104 temporarily stores the data necessary for executing thecontrol program.

The CPU 105 manages the entire operation of the transmission server 10by executing the control program stored in the ROM 103 or HDD 102 on avolatile memory such as the RAM 104. For example, the CPU 105 managesthe drive 101 so as to read-out an original file from a removable diskand write the file onto the HDD 102.

The communication interface 106 transmits data to and receives data fromthe reproduction apparatus 20 via the network 30. The data sent to andfrom the reproduction apparatus 20 includes at least the encoded videodata files, and may further include a non-compressed video data filefrom a resource on the network 30.

The input interface 107 accepts a user operation on an operation unit 11such as a keyboard and/or a mouse. An operation signal is provided tothe CPU 105 via the BUS 110. The input interface 107 is not an essentialelement of the transmission server 10 of the present invention.

The decoder unit 108 includes an MPEG decoder 108 a and a video signalgeneration unit 108 b. The decoder unit 108 is an optional element forthe transmission server 10. The decoder unit 108, however, enables thetransmission server 10 to decode an encoded video data file. The MPEGdecoder 108 a decodes MPEG encoded data provided through the BUS 110according to a command from the CPU 105, and generates digital videodata. The digital video data is then provided to the video signalgeneration unit 108 b. The video signal generation unit 108 b convertsthe digital video data into display data so that the display data cancorrespond with the number of pixels of a liquid crystal display (LCD)12. The generated display data is then outputted to the LCD 12 by a LCDdriver (not shown).

The MPEG encoder 109 encodes low-compression or non-compression digitalvideo data into MPEG format data according to a command from the CPU105. The generated encoded data is stored in the HDD 102 via the BUS110. The MPEG encoder 109 is an optional element for the transmissionserver 10 and may be set outside of the transmission server 10.

(2) Reproduction Apparatus

FIG. 3 shows a hardware block diagram of the reproduction apparatus 20in FIG. 1. In this embodiment, the reproduction apparatus 20 includes adrive 201, a HDD 202, a ROM 203, a RAM 204, a CPU2 05, a communicationinterface 206, an input interface 207, a decoder unit 208, a MPEGencoder 209, and a BUS 120 that connect the above mentioned elements.

The drive 201 reads out encoded data files from a removable storagemedium such as an optical disk. The removable medium has correlativelyrecorded thereon encoded video data files and voice data files for an AVcontent. In this embodiment, the drive 201 is an optional element forthe reproduction apparatus 20. The drive 201, however, enables thereproduction apparatus 20 to read-out encoded video data recorded on aremovable medium for reproduction.

The HDD 202 correlatively stores a plurality of encoded video data filesand voice data files for an AV content. Each encoded video data file andeach voice data file correspond to a reproduction mode at a certain playspeed. In this embodiment, the HDD 202 is an optional element for thereproduction apparatus 20. The HDD 202, however, enables thereproduction apparatus 20 to record an encoded video data read-out fromthe drive 201 or received from the transmission server 10 onto the HDD202 so as to perform reproduction.

The ROM 203 stores a control program and data necessary for executing acontrol program.

The RAM 204 temporarily stores the data necessary for executing thecontrol program.

The CPU 205 executes the control program stored in the ROM 203 on avolatile memory such as the RAM 204, and manages the entire operation ofthe reproduction apparatus 20. For example, the CPU 205 manages thecommunication interface 206 so that it receives an encoded video datastream from the transmission server 10, and outputs the stream to thedecoder unit 208 via the BUS 201.

The communication interface 206 sends and receives the data to and fromthe transmission server 10 via the network 30. For example, thecommunication interface 206 receives an encoded video data stream fromand sends an operation signal by a user input to the transmission server10.

The input interface 207 accepts a user operation on an operation unit 21such as a keyboard and/or a mouse. An operation signal is output to theCPU 205 via BUS 210.

The decoder unit 208 includes an MPEG decoder 208 a and a video signalgeneration unit 208 b. The MPEG decoder 208 a decodes MPEG formatencoded data that is input through the BUS 210 in response to a commandfrom the CPU 205, and generates digital video data. The digital videodata is provided to the video signal generation unit 208 b. The videosignal generation 208 b converts the digital video data into displaydata so that the display data can correspond with the number of pixelsof a LCD 22. The generated display data is then output to the LDC 22 bya LCD driver (not shown).

Functional Configuration

[1] Function Configuration of the Transmission Server

FIG. 4 shows a block diagram of a functional configuration of thetransmission server 10. The CPU 105 in the transmission server 10enables the transmission server 10 to operate as a generation unit 105a, a read-out unit 105 b, a request acceptance unit 105 c (a “changeacceptance unit” in the claims), and a switching unit 105 d (a “dataswitching unit” in the claims). The process of transmitting the trickplay data by server 10 to the reproduction apparatus 20 will beexplained first, and then, the tables stored in the transmission server10, and finally, each function of the transmission server 10.

[1-1] An Original File and a Fast-Forward File

FIG. 5(A) is an explanatory view of an original file. FIG. 5(B) is anexplanatory view of a fast-forward file which is derived from theoriginal file illustrated in FIG. 5(A). FIGS. 5(A) and 5(B) alsoillustrate how to generate a fast-forward file based on an originalfile. These files are recorded on a storage medium such as a removablestorage medium or a hard disk.

The original file is for reproduction in a normal mode at n−(n=1) timesplay speed and is generated by inter-frame compression of an AV datawhich is compressed at low-compression rate or is non-compression data.Examples of inter frame compression technique include MPEG 2 and MPEG 4.In this embodiment, as mentioned previously, an original file is aninter-frame MPEG-compressed data file which includes I-pictures,B-pictures, and P-pictures. An I-picture can be decoded independently,whereas a B-picture is encoded by making reference to preceding and/orsubsequent pictures. A P-picture is encoded by making a reference onlyto preceding pictures and can therefore be decoded by making a referenceto preceding pictures only. P-pictures and B-pictures in a GOP (group ofpictures) may refer to another picture in another GOP (hereinafter an“open-GOP file”). On the contrary, P-pictures and B-pictures in a GOPmay only refer to another picture in the same GOP (hereinafter a“closed-GOP file”).

A fast-forward file is for a fast-forward playback at n-times speed(n>1) in a fast-forward mode. A plurality of fast-forward files can begenerated for different play speeds. In this case, a file is read-outaccording to a designated reproduction mode and a designated play speed.

FIG. 5(A) shows an original file, and FIG. 5(B) shows a fast-forwardfile. Picture numbers that are illustrated in FIGS. 5(A) and 5(B) suchas I1, B2, B3, P4 . . . are assigned to each picture and are serialnumbers starting from “1” in each group of pictures and are in order ofstream sequences. In other words, picture numbers indicating the orderin each GOP show the order in which the pictures should be read-out,both encoded and decoded. Hence, each display number in FIGS. 5(A) and5(B) indicates the order in a GOP in which each picture should bedisplayed.

The original file in FIG. 5(A) illustrates the picture numbers showingthe order for the pictures to be read-out, picture types, and displaynumbers. Shadowed squares such as B2, B8 and B12 are the pictures to beremoved, as further described below. The numbers “00000000” and“00013629” in FIG. 5(A) show relative addresses of each I-picture, whichare addresses relative to the head of the original file.

The generation of the fast-forward file is illustrated in FIG. 5(B). Thefast-forward file is generated by removing B2, B8 and B12-pictures fromeach GOP in the original file. Here, the number of pictures included inthe GOP decreases from 12 to 9. Therefore, this fast-forward filefacilitates reproduction in a fast-forward mode at about 1.3 times playspeed even without increasing the speed of transmission over the network30 for reading-out and decoding the data. The numbers “00000000” and“00010843” in FIG. 5(B) show the relative addresses of each I-picturethat are relative to the head of the original file.

The relative address of an I1-picture, which is the address relative tothe head of a file, is always “00000000” in every file. While therelative addresses of a corresponding I2-picture is “00013629” in theoriginal file and “00010843” in the fast-forward file, the relativeaddresses of the corresponding I2-picture has two addresses, one that isrelative to the head of the original file and the other that is relativeto the head of the fast-forward file. Relative addresses of acorresponding I-picture included in different files are associated witheach other in an offset table (FIG. 7) as further described below.

Some pictures in each GOP of the fast-forward file have differentdisplay numbers from those in the original file. This is because newdisplay numbers are assigned to each picture in the fast-forward file sothat the display numbers are consecutive numbers beginning with zero ineach GOP.

For example, pictures with display numbers “1” to “5” in the originalfile correspond to the pictures with display numbers “0” to “4” in thefast-forward file. These pictures in the fast-forward file have displaynumbers that are one less than the display numbers in the original file.Likewise, the pictures of display numbers “7” to “9” in the originalfile correspond to the pictures of display number “5” to “7” in thefast-forward file. In this case, these pictures in the fast-forward filehave smaller display numbers that are two less than the picture numbersin the original file. Likewise, the picture of display number “11” inthe original file is corresponding to the picture of the display number“8” in the fast-forward file. This picture in the fast-forward file hasa display number that is three less than the picture numbers in theoriginal file.

FIG. 6(A) shows the same original file as in FIG. 5(A). FIG. 6(B) showsanother fast-forward file derived from the original file illustrated inFIG. 6(A). This fast-forward file is generated by removing 4 picturesfrom each GOP having 12 pictures in the original file and thus,facilitates reproduction in a fast-forward mode at 1.5 times play speed.As mentioned previously, the relative addresses of the correspondingI-pictures are stored correlatively in an offset table, and the displayorder in each GOP is newly assigned in the fast-forward file.

Only one fast-forward file appears to be generated from an original filein the above-mentioned FIG. 5 and FIG. 6. However, a plurality offast-forward files for different trick play speeds can be generated fromthe one original file.

The above-mentioned fast-forward file can be decoded by a conventionalMPEG decoder. Moreover, the data amount of the fast-forward file is lessthan the data amount of the original file. This is because thefast-forward file is generated by removing several pictures from theoriginal file. Therefore, the fast-forward file facilitates reproductionin a fast-forward mode at n-times play speeds (n>1) without increasingthe data transmission speed of the transmission server 10 or the network30, or the reproduction speed at the reproduction apparatus 20 whenbeing transmitted from the transmission server 10 to the reproductionapparatus 20.

[1-2] Tables

FIGS. 7(A) and 7(B) show a conceptual view of tables stored in the ROM103 of the transmission server 10. FIG. 7(A) is a stream table, and FIG.7(B) is an offset table.

The stream table associates an original file with at least onefast-forward file which is generated based on the original file. Theseassociated files correspond to the same AV content. In this embodiment,the stream table associates an original file with a fast-forward file.

The stream table correlatively stores a “stream ID”, an “original filename” and a “fast-forward address”. The “stream ID” indicates anidentifier of an AV content. The “original file name” indicates the nameof an original file. The “fast-forward file name” indicates the name ofa fast-forward file.

The stream table can further associate play speeds with the abovementioned data. This enables the stream table to correlate a pluralityof fast-forward files for different play speeds generated from the sameoriginal file. In this case, the stream table associates the headaddress of an original file, the head addresses of each fast-forwardfile and play speeds. In addition to play speeds, the stream table canassociate a voice data file for n-times speed playback with afast-forward file for n-times speed playback (not shown).

FIG. 7(B) is an offset table that associates the address of an I-picturein the original file with the address of a corresponding I-picture in afast-forward file. In this embodiment, relative addresses, in otherwords, offset values, of each I-picture in each file are associated witheach other in a record. More specifically, this offset table stores a“GOP number,” a “display number,” an “original file address,” and a“fast-forward file address” in a record.

The “GOP number” specifies a GOP in each file and the “display number”indicates the display order in each GOP. The “display number” can beomitted when each GOP includes only one I-picture. The “display number”or other information is used to distinguish I-pictures in each GOP whena plurality of I-pictures is included in each GOP. The “original fileaddress” indicates an address of an I-picture relative to the head ofthe original file. The “fast-forward file address” indicates an addressof a corresponding I-picture relative to the head of the fast-forwardfile. The original file address and the fast-forward file address are anoffset value relative to the head of each file.

The offset table of FIG. 7(B) facilitates a switching of read-out pointsfrom an I-picture address in a file to the corresponding I-pictureaddress in another file.

[1-3] Functions

(a) Generation Unit

The generation unit 105 a generates a fast-forward file by removingpictures from the picture sequence of an original file to reduce theamount of data. The generated fast-forward file is recorded on a storagemedium, such as a removable storage medium and the HDD 102, by thegeneration unit 105 a. In this invention, to simplify the explanation, acase where the generated fast-forward file is recorded on the HDD 102together along with the original file will be considered as follows.Although the generation unit 105 a is an optional element for thetransmission server 10, it nevertheless enables the transmission server10 to generate a fast-forward file.

The removed pictures by the generation unit 105 a are pictures otherthan ones which can be decoded independently. In other words, thegeneration unit 105 a removes pictures other than I-pictures. In thisembodiment, pictures to be removed from the original file are a part orall of B-pictures. The number of pictures to be removed “Ne” from eachGOP is determined based on the following formula.

Ngop/R=Ngop−Ne  Math. 1

(with R beplay speed)

Preferably, removal of B-pictures from the original file is accomplishedso that the intervals between the removed pictures are as uniform aspossible along with the picture sequence in the original file. By doingso, deterioration of image quality during reproduction is prevented.Therefore, the generation unit 105 a preferably removes a B-picture atevery “S” picture in the sequence of the pictures in the original file.Here, the number “S” indicates a skip number which can be calculatedbased on the number of pictures to be removed “Ne.” The skip number “S”can be calculated according to the following formula:

S=Ngop/Ne  Math. 2

After removing B-pictures, a new display number is assigned to eachpicture remaining in the file. Display numbers in each GOP are serialnumbers starting from zero.

(b) Read-Out Unit

The read-out unit 105 b reads out a file from the HDD 102 thatcorresponds to a stream ID and a reproduction mode requested from thereproduction apparatus 20. The file is read-out from a read-out addressdesignated by the switching unit 105 d. The read-out unit 105 b switchesthe files to be read-out from the current file to a next file uponreceiving an instruction of reading-out the next file along with aread-out address thereof while reading-out the current file. In otherwords, the read-out unit 105 b stops reading-out the current file andstarts reading-out the next file from the designated read-out address.

(c) Request Acceptance Unit

The request acceptance unit 105 c receives a transmission request and amode switching request from the reproduction apparatus 20. Thetransmission request and the mode switching request include at least acommunication address of a sender, a stream ID, and a reproduction mode.The reproduction mode is either a normal mode or a fast-forward mode inthis embodiment.

(d) Switching Unit

(d-1) A Notification of Read-Out Address of a File

The switching unit 105 d determines the file to be read-out upon thetransmission request from the reproduction unit 20, and notifies thehead address of a file to the read-out unit 105 b. The transmissionrequest from the reproduction apparatus 20 includes at least a stream IDand a reproduction mode.

The switching unit 105 d determines the file to be read-out next uponreceiving the mode switching request, and notifies the read-out unit 105b of a read-out address of a next file to be read-out next. Thisnotification is performed while a current file is being read-out. Themode switching request from the reproduction apparatus 20 includes atleast a stream ID and a reproduction mode.

(d-2) Determination of Switching Position of Files

The switching unit 105 d determines the switching positions of files.The switching unit 105 d preferably determines two I-pictures in thecurrent file and the next file as switching positions. The twoI-pictures are identical with each other and are arranged in the currentfile and the next file respectively. Switching at these twocorresponding I-pictures facilitates smoother playback when switchingthe reproduction modes. This is because each I-picture is decodedindependently and the decoded data of an I-picture in a file isidentical with the decoded data of the corresponding I-picture inanother file. For example, in FIG. 5, when a fast-forward mode isrequested after reading-out and transmission of the P7-picture in theoriginal file, the I1-pictures in both the original and fast-forwardfiles of the next GOPs (GOP2s) are determined as switching positions.These I1-pictures are I-pictures to be read-out after the P7-pictures inboth files. Here it should be noted that the B9-, P10-, B11-picturesarranged in both files and read-out after the P7-pictures are notdetermined as switching positions.

The switching position in the current file is preferably a firstI-picture to be read-out after receiving the mode switching request sothat there would be a minimal lag between the receptions of the modeswitching request. The switching position in the next file is acorresponding I-picture which is identical to the I-picture of theswitching point in the current file. Again, using FIG. 5 as an example,when a fast-forward mode is requested after reading-out the B2-picturein the original file, the I1-picture in GOP2 will be determined as aswitching position in the current file. The I1-picture is the firstI-picture to be read-out after the B2-picture.

(d-3) Calculation of a Read-Out Address

A reading-out position of the next file is calculated based on thecalculated switching position of the current file. Another switchingposition of the next file, namely the address, is obtained from theoffset table. The switching unit 105 d reads out the relative address ofthe I-picture in the next file from the offset table. Here, theI-picture in the next file is identical to the I-picture in the currentfile which also is the switching position in the current file. Thereading address of the next file is calculated based on the relativeaddress that has been read-out and the head address of the next file.The I-pictures of both switching positions can be read-out from eitherone of the current file or the next file. The method of obtaining therelative address of an I-picture based on the offset table has anadvantage of conserving memory space for storing the fast-forward fileas compared with a method of using dummy data, which is described below.

(2) The Reproduction Apparatus

FIG. 8 shows a functional block diagram of the reproduction apparatus20. The CPU 205 of the reproduction apparatus 20 enables thereproduction apparatus 20 to operate as a reproduction unit 205 a and arequest acceptance unit 205 b, which are explained below.

(a) The Reproduction Unit

The reproduction unit 205 a sends a command requesting the reproductionof an encoded stream from the transmission server 10 to the MPEG decoder208 a. The MPEG decoder 208 a then starts decoding and reproducingpictures from the communication interface 206 one after another uponreceiving the command, and stops decoding and reproduction uponreceiving a “stop” command. The reproduction unit 205 a may also send acommand to the MPEG decoder 208 a requesting the decoded data that hasbeen read-out from a removable disk in the drive 201 or from the HDD202. This enables the reproduction apparatus 20 to playback encoded datarecorded on the removable disk or the HDD 202.

(b) The Request Acceptance Unit

The request acceptance unit 205 b accepts designation of stream ID andreproduction mode via the input interface 207, and sends the designatedstream ID and reproduction mode to the transmission server 10.

Process

Hereinafter, an explanation of the process executed in the reproductionsystem 100 will be given using FIGS. 9-11.

[1] Processes by the Transmission Server

The transmission server 10 executes at least a transmission process. Inthis embodiment, the transmission server 10 also executes a datageneration process. It should be noted that the file generation processmay be executed not only on the transmission server 10 but also onanother computer terminal.

[1-1] A Data Generation Process

FIG. 9 illustrates a flow chart of an embodiment of the data generationprocess executed by the CPU 105 in the transmission server 10. Thisprocess is to generate fast-forward file. This process may be startedupon obtaining new non-encoded AV data or low-compression AV data. Thisprocess may also be stared upon obtaining or generating a new originalfile. In this embodiment, suppose that the CPU 105 generates data forfast-forward reproduction after generating MPEG2 data of an originalfile and recording the file on the HDD 102.

Step S101: The CPU 105 calculates a step number S. The CPU 105 generatesthe data for a fast-forward reproduction by removing a picture at every“S” picture. In addition, the CPU 105 executes the following initiationprocesses where the CPU 105 sets a read-out address of the HDD 102 atthe head of the original file. The CPU 105 generates a buffer in avolatile memory such as the RAM 104 so that the data for fast-forwardreproduction is temporarily recorded during the data generation process.

Step S102: The CPU 105 reads out the data of one GOP from the originalfile. Such read-out GOP is called “current GOP” hereinafter. The CPU 105sets an initial value of the skip number “Nskip” at “-S”. The skipnumber “Nskip” indicates the display number of the picture which is lastremoved among the pictures in the current GOP.

Step S103: The CPU 105 initiates a read-out parameter and sets its value“N” to “0”. The value of the read-out parameter “N” indicates a displaynumber of a picture to be read-out next. The read-out parameter is usedin the following steps to determine which picture should be removed ornot.

Step S104: The CPU 105 reads out a picture with display number “N” fromthe RAM 104.

Step S105: The CPU 105 determines whether the read-out picture is anI-picture or P-picture.

Step S106: If an I-picture or P-picture is being read-out, the CPU 105writes the read-out picture into the buffer generated in step S101 sinceB-pictures are to be removed in this embodiment. In a case where theread-out picture is a picture other than an I- or P-picture, namely aB-picture, the process jumps to step S109 described below.

Step S107: The CPU 105 determines whether a picture with the displaynumber “N+1” exists in the current GOP by referring to the RAM 104.

Step S108: If a picture with the display number “N+1” exists in thecurrent GOP, the CPU 105 increments the value of the read-out parameter“N” to “N+1” and reads-out a picture having a display number that is“N+1” (S104). If a picture with the display number “N+1” does not existin the current GOP, the process jumps to Step S111 below.

Step S109: The CPU 105 determines whether a formula mentioned below ismet when a B-picture is being read-out. In other words, the CPU 105determines whether the difference in the display numbers between a lastremoved B-picture and the B-picture just being read-out is equal to orlarger than the skip number “S”.

N>=Nskip+S  Math. 3

Step S110: When the above mentioned formula is met, the CPU 105 readsout a next picture without writing the B-picture onto the buffer. TheCPU 105 sets the value of skip number “Nskip” to the value “N” of thecurrent display number (Nskip<—N). Afterwards, the process jumps to thestep S107. In this way, a B-picture is removed from the original file atevery “S” picture in a display order.

Step S111: The CPU 105 determines whether the next GOP exists or not byreferring to the address that is one GOP ahead. If the next GOP isfound, the CPU 105 executes the above mentioned steps S102-S110 for thenext GOP. If the next GOP does not exist, it means that the B-pictureswere removed from all of the GOPs in the original file. The process thenjumps to step S112.

Step S112: The CPU 105 assigns new display numbers to every picture ineach GOP. The display numbers are assigned serially starting from “0” ineach GOP.

Step S113: The CPU 105 records the data stored in the buffer for thefast-forward reproduction onto the HDD 102 whereby the fast-forward filedata and the original file data are stored correlatively. The CPU 105writes the name of the original file data and the name of thefast-forward file data into the stream table. The CPU 105 also writesthe addresses of I-pictures in the original file and those of thefast-forward file in the offset table correlatively.

[1-2] A Transmission Process

FIG. 10 illustrates a flow chart of the transmission process executed bythe CPU 105 in the transmission server 10. This process is initiated bythe starting of the transmission server 10.

Step S201: The CPU 105 waits for the transmission request from thereproduction apparatus 20 and jumps to step S202 upon receiving suchtransmission request. The transmission request includes a stream ID anda reproduction mode.

Step S202: The CPU 105 determines the head address of a filecorresponding to the requested stream ID and reproduction mode as theread-out address by referring to the stream table. Concretely, the CPU105 sends a request to Operation System (OS) to read out the file fromits file head.

Step S203: The CPU 105 starts reading-out and transmits pictures fromthe read-out address. The CPU 105 reads out one picture from theread-out address, and transmits such picture to the reproductionapparatus 20 via the communication interface 106.

Step S204: The CPU 105 determines whether the transmission server 10received a mode switching request from the reproduction apparatus 20. Ifthe transmission server 10 has received a mode switching request, theprocess jumps to step S208 described below.

Step S205: If there is no mode switching request, the CPU 105 willread-out from the address that is one picture ahead.

Step S206: The CPU 105 determines whether the new read-out addressindicates the end of file (hereinafter “EOF”).

Step S207: If the new read-out address indicates an EOF, the CPU 105determines if this process should end or not. The process will terminatein a case such as when the transmission server 10 is turned off. The CPU105 waits for the next transmission request if the new read-out addressindicates EOF.

Step S208: The CPU 105 determines whether the latest picture sent out isan I-picture when the transmission server receives a mode switchingrequest. In other words, the CPU 105 determines whether the picturetransmitted in the step S203 was an I-picture or not.

Step S209: When the picture was an I-picture, the CPU 105 calculates arelative address of the current read-out address which is relative tothe head address of the current file. “The current read-out address”hereby is an address of the I-picture transmitted in the step S203.

Step S210: The CPU 105 reads out a new relative address from the offsettable according to the current reproduction mode, the calculatedrelative address in the step S209, and the newly requested reproductionmode. The CPU 105 calculates a read-out address in a file to bereproduced next, based on the read-out new relative address. Theread-out address in the file to be read-out next for reproduction is aninitial address of the picture next to the I-picture identical to theI-picture transmitted in the step S203. In addition, the CPU 105requests OS to read out the next file. Concretely, the CPU 105 sends aread-out request of the file to OS together with a file namecorresponding to the requested reproduction mode and the calculatedread-out address. The process then returns to step S203 and the CPU 105reads out and transmits the pictures from the read-out address one afteranother.

Step S211: The CPU 105 sets the read-out address to the head address ofthe next picture when the latest transmitted picture was not anI-picture.

Step S212-213: The CPU 105 proceeds to read-out and transmit the nextpicture until the end of the file. The CPU 105 determines whether thetransmitted picture was an I-picture or not when a picture wastransmitted to the reproduction apparatus 20 (S208). If the transmittedpicture was an I-picture, the CPU 105 calculates the read-out address ofa file to be read-out next (S209-S210). Accordingly, the read-outaddress of the next stream data is the head address of a picture next toan I-picture which is a next I-picture to the transmitted I-picture.

This process enables the transmission server 10 to transmit a video datastream which is requested by the reproduction apparatus 20. Thetransmission server 10 reads out and transmits a file corresponding tothe next reproduction mode when it receives a mode switching requestduring the transmission of another file. The transmission server 10 thenswitches the files at an I-picture in the current file between anI-picture in the next file. In this embodiment, the next file isread-out from the head address of a picture which is next to anI-picture. This switching effectively prevents deterioration of imagequality when the files are switched.

[2] A Process Executed by Reproduction Apparatus

FIG. 11 illustrates a flow chart of a process executed by the CPU 205 inthe reproduction apparatus 20. This process is initiated by switching onthe reproduction apparatus 20.

Step S301: The CPU 205 waits for a reproduction instruction from theinput interface 207. This process jumps to step S302 upon thereproduction instruction. The reproduction instruction includes a streamID and a reproduction mode.

Step S302: The CPU 205 transmits a transmission request to thetransmission server 10 via the communication interface 206. Thetransmission request includes the input stream ID and the reproductionmode.

Step S303-S304: The CPU 205 waits for pictures from the transmissionserver 10 (S303), and sends a command to the MPEG decoder 208 a todecode pictures received via the communication interface 206 (S304). TheMPEG decoder 208 a decodes the received pictures in a stream identifiedby the stream ID in receiving order upon the command from the CPU 205.The decoded pictures are used to output images on the LCD 22 in displayorder.

Step S305-S306: The CPU 205 receives a mode switching request at anytime (S305), and transmits the mode switching request to thetransmission server 10 via the communication interface (S306). Picturesof a next file will be sent from the transmission server 10 upon thismode switching request. These pictures in the next file are also decodedby MPEG decoder 208 a in a similar way for decoding pictures arranged inthe previous file which was being decoded before the mode switchinginstruction.

Step S307: The CPU 205 watches whether an EOF is sent from thetransmission server 10. The CPU 205 receives a mode switchinginstruction until receipt of an EOF (S305). Upon the reception of EOF, acommand is sent to the MPEG decoder 208 a to stop the decoding, and tomove onto step S308.

Step S308: The CPU 205 determines if this process should end upon thereception of EOF. For example, this process is terminated when thereproduction apparatus 20 is switched off. The CPU 205 waits for thenext reproduction instruction during this process.

This process also enables the reproduction apparatus 20 to output imagesbased on the file from the transmission server 10. The reproductionapparatus 20 transmits a mode switching request to the transmissionserver 10 upon the acceptance of a mode switching instruction duringreception of the file. The files from the transmission server 10 areswitched from one to another corresponding to the reproduction modedesignated by the mode switching request. Accordingly, the reproductionapparatus 20 can realize a switching of reproduction modes based on themode switching instruction by reproducing the pictures from thetransmission server 10 one after another.

In this embodiment, a mode switching request is transmitted from thereproduction apparatus 20 to the transmission server 10, and switchesfiles to be transmitted from the transmission server 10. Decoding andoutputting the pictures received from the transmission server 10 canrealize a switching of reproduction modes in playback on thereproduction apparatus 20.

The Second Embodiment

In this embodiment, encoded data files are stored in the reproductionapparatus 50. The reproduction apparatus 50 switches reproduction modesby switching files to be read-out from a storage medium. Examples of thestorage medium are a hard disk in the reproduction apparatus 50 and aremovable storage medium. In order to simplify the explanation, thereproduction apparatus 50 reads out encoded data files from the harddisk in this embodiment.

Hardware Configuration

FIG. 12 illustrates a hardware diagram of a reproduction apparatus 50.In this embodiment, the reproduction apparatus 50 includes a drive 501,an HDD 502, a ROM 503, a RAM 504, a CPU 505, a communication interface506, an input interface 507, a decoder unit 508, and a BUS 510 thatconnects the above mentioned elements. The elements having the samefunctions as those of the reproduction apparatus 20 in the firstembodiment are illustrated with the same names for the reproductionapparatus 50.

The drive 501 reads out encoded data files from a removable storagemedium such as an optical disk. The drive 501 is an optional element forthe reproduction apparatus 50.

The HDD 502 stores a plurality of encoded video data files andpreferably a plurality of voice data files for each AV content.

The ROM 503 stores control programs and data necessary for executing acontrol program.

The RAM 504 temporarily stores the data necessary for executing thecontrol program.

The CPU 505 manages the entire operation of the reproduction apparatus50 by executing the control program stored in the ROM 503 on a volatilememory such as the RAM 504. For example, the CPU 505 manages thecommunication interface 506 so that it receives an encoded data streamfrom the transmission server 10, and outputs the received stream to thedecoder unit 508 via the BUS 510.

The input interface 507 accepts a user operation on an operation unit 51such as a keyboard and a mouse. An operation signal is output to the CPU505 via the BUS 510.

The decoder unit 508 includes an MPEG decoder 508 a and a video signalgeneration unit 508 b. The MPEG decoder 508 a decodes MPEG formatencoded data that is input through the BUS 510 in response to a commandfrom the CPU 505, and generates digital video data. The generateddigital video data is output to the video signal generation unit 508 b.The video signal generation unit 508 b converts the digital video datainto display data so that the display data can correspond with thenumber of pixels of a LCD 52. The generated display data is then outputto the LCD 52 by a LCD driver (not shown).

Functional Configuration

FIG. 13 illustrates a functional diagram of the reproduction apparatus50. The CPU 505 in the reproduction apparatus 50 enables thereproduction apparatus 50 to operate as a read-out unit 505 a, anacceptance unit 505 b, and a switching unit 505 c. The structure of afast-forward file will be explained first, and then each function of thereproduction apparatus 50. The ROM 503 in the reproduction apparatus 50stores the stream table mentioned in the first embodiment, this streamtable stores similar data to those explained in the first embodiment.

(a) A Fast-Forward File

(a-1) Configuration

FIG. 14(A) is an explanatory view of an original file. FIG. 14(B) is anexplanatory view of a fast-forward file which is derived from theoriginal file illustrated in FIG. 14(A). The original file and thefast-forward file are stored in a storage medium such as a removablestorage medium or a hard disk. The fast-forward file in this embodimentis the same as the fast-forward file described in the first embodimentin a sense that they both are generated by removing some pictures in theclosed-GOP-type or open-GOP-type original file. The difference in afast-forward file between this embodiment and the first embodiment iswhether or not the relative addresses of I-pictures arranged in each GOPare the same between an original file and a fast-forward file. This isbecause dummy data having the same amount of data as a removed pictureis inserted into a fast-forward file of this embodiment.

FIG. 14(B) illustrates the fast-forward file generated by removing fourpictures from each GOP in the original file. In addition, thefast-forward file has dummy data “PD” whose data amount is identical tothat of four removed pictures.

This fast-forward file has the following advantages. This fast-forwardfile enables the omission of the offset table shown in the firstembodiment because the relative addresses of I-pictures in differentfiles are the same as long as they correspond to a same AV content.Therefore, the read-out address of a next file can be calculated basedon a relative address of an I-picture, which is a switching position ina current file, and the head address of the next file stored in thestream table. The relative address is an address relative to the head ofa file as mentioned in the first embodiment.

(a-2) Generation of a Fast-Forward File

The generation of the above-mentioned fast-forward file can be performedby the generation unit 105 a in the transmission server 10 explained inthe first embodiment. The generation unit 105 a generates a fast-forwardfile with dummy data by executing the following additional steps (notshown) in addition to the steps illustrated in the flowchart in FIG. 9.

An additional step counts and stores the total number of times itdetermines “yes” in step S109 for each GOP. Concretely, this processcounts and stores the number of pictures removed from each GOP in theoriginal file. A parameter “Pr” is newly adopted in this modifiedflowchart in order to indicate the number of removed pictures. Theparameter Pr is initialized to 0 in step S102, and is incremented inanother additional step. This step of incrementing the value ofparameter “Pr” is executed by the generation unit 105 a afterdetermining “yes” at step S109 and before jumping to step S107.

Dummy data, which has the same amount of data as removed “Pr” pictures,is written into the buffer (step S107 a, not shown). This step S107 a isexecuted after step S107 and before step S111. The dummy data is writteninto the buffer after the removing process for each GOP is completed.Accordingly, dummy data having the same amount of data as removedpictures is consecutively arranged after the remaining pictures of eachGOP in the buffer.

(b) Read-Out Unit

The read-out unit 505 a reads out a file from the HDD 502 whichcorresponds to a stream ID and a reproduction mode provided by the inputinterface 507. The file is read-out from a read-out address designatedby the switching unit 505 c. The read-out unit 505 a switches the filesto be read-out from a current file to a next file upon receiving aninstruction of reading-out the next file along with a read-out addressthereof, while reading-out the current file. In other words, theread-out unit 505 a stops reading-out the current file and startsreading-out the next file from the designated read-out address.

(c) Acceptance Unit

The acceptance unit 505 b accepts the designation of a stream ID and areproduction mode via the input interface 507. The acceptance unit 505 bnotifies the switching unit 505 c of the designated stream ID and thereproduction mode.

(d) Switching Unit

(d-1) Notification of Read-Out Address

The switching unit 505 c determines a file to be read-out based on thestream ID and the reproduction mode notified from the acceptance unit505 b. The switching unit 505 c notifies the read-out unit 505 a of thehead address of the file to be read-out.

The switching unit 505 c also determines a next file and its read-outaddress based upon the stream ID and the reproduction mode accepted bythe acceptance unit 505 b while a current file is being read-out. Thenext file and its read-out address are notified to the read-out unit 505a.

(d-2) The Switching Position of the Files

The switching unit 505 c determines the switching positions of thecurrent and next files. The switching unit 505 c will determine twoI-pictures in the current file and the next file as switching positions.The two I-pictures are identical to each other, and are arranged in thecurrent file and the next file respectively. The switching position inthe current file is preferably a first I-picture to be read-out from thecurrent file after accepting the mode switching instruction. Theswitching position in the next file is a corresponding I-picture whichis identical to the I-picture of the switching position in the currentfile. The relative address of the I-pictures of the switching positionsin the current and the next files are identical.

(d-3) Calculation of the Read-Out Address

The switching unit 505 c calculates the read-out address of the nextfile based on the determined switching positions. The read-out addressof the next file may be calculated by adding the relative address of theI-picture of the switching position in the next file and the headaddress of the next file.

Process

FIG. 15 illustrates a flowchart of a reproduction process executed bythe CPU 505 in the reproduction apparatus 50. This process is initiated,for example, by turning on the reproduction apparatus 50.

Step S401: The CPU 505 waits for a reproduction instruction from theinput interface 507. The process jumps to step S402 upon receiving thereproduction instruction. The reproduction instruction includes at leastone stream ID and a reproduction mode.

Step S402: The CPU 505 reads out a name of an encoded file from thestream table based on the stream ID and the reproduction mode acceptedin the step S401.

Step S403: The CPU 505 starts reading-out pictures from the fileidentified by the file name that is read out from the stream table inthe step S402. The CPU 505 also sends a command to the MPEG decoder 508a which instructs the start of decoding. The MPEG decoder 508 a thenstarts decoding the read-out pictures in the order of them beingread-out upon receiving the command. The decoded pictures are used toproduce images on the LCD 52 in the order of display according to thedisplay numbers.

Step S404-S405: The CPU 505 determines whether a mode switchinginstruction is input (S404). If there is no mode switching request, theCPU 505 will read-out from the address that is one picture ahead. If theCPU 505 receives the mode switching instruction, this process jumps tothe step S408 mentioned below.

Step S406-S407: The CPU 505 determines whether the new read-out addressindicates the end of file EOF (S406). If the new read-out addressindicates EOF, the CPU 505 determines whether this process should end ornot (S407). If this process should continue, this process returns tostep S401 to wait for the next reproduction instruction. This processwill terminate, for example, in a case such as when the re-productionapparatus 50 is turned off.

Step S408-S409: When the mode switching instruction is input, the CPU505 determines whether the latest read-out picture was an I-picture(S408). In other words, the CPU 505 determines whether an I-picture wasread-out and decoded in the step S403. If that is the case, the CPU 505calculates a relative address of the current read-out address which isrelative to the head address of the current file (S409). The “currentread-out address” is the address of the I-picture read-out in the stepS403.

Step S410: The CPU 505 requests OS to read out the next file whose nameis read out from the stream table. The read-out address of the next fileis the head address of a picture next to the picture whose head addressis at the relative address. Then the process returns to step S403, andreading-out and decoding the pictures located at a reading address isperformed in one after another.

Step S411-S413: The CPU 505 determines the “head address of the nextpicture” as a read-out address when the latest read-out picture was notan I-picture (S411). Further, the CPU 505 reiterates reading-out anddecoding the next picture until the read-out address reaches to the endof file (S412, S413). The CPU 505 determines whether read-out picture isan I-picture when reading-out a picture (S408). When a read-out pictureis an I-picture, the CPU 505 calculates a read-out address of the nextfile (S409-S410). Therefore, the relative address of the read-out pointof the next file is identical with the relative address of the beginningof a picture next to an I-picture which is read-out after an I-pictureread-out in step S408.

In this way, the reproduction apparatus 50 switches files to be read-outfrom a storage medium upon accepting the mode switching instruction, andrepresents images.

The Third Embodiment

In this embodiment, an explanation about switching encoded files forreproduction from an original file to a reverse file will be given. Asmentioned in the first embodiment, the transmission server 10 includedin the transmission system 100 and communicates with a reproductionapparatus 20 in the system 100 via a network 30, switches the encodedfiles. The transmission server 10 also stores a reverse file as a trickplay file in addition to an original file. The hardware configurationand the function configuration of the transmission server 10 and thereproduction apparatus 20 are substantially the same as those explainedin the first embodiment other than the fact that the generation unit 105a in the transmission server 10 further generates a reverse file. Theconfiguration of a reverse file, switching of encoded files between areverse file and an original file, and generation process of a reversefile will be explained below.

(a) Configuration of a Reverse File

A reverse file is an encoded data file for reproduction in a reversemode at n-(n=1) times play speed. A plurality of reverse files can begenerated for different trick play speeds.

FIG. 16(A) is an explanatory view of an original file which is derivedfrom a source video data. FIG. 16(B) is an explanatory view of a reversefile which is derived from the same source video data. The reverse fileis generated from a source video data unlike a fast-forward file. Asource video data is a low-compression or a non-compression AV data, andincludes a plurality of frames. Each frame has an odd field and an evenfield, and is corresponding to each picture arranged in an MPEG2 file.In this embodiment, I, P, and B-pictures are arranged in the order ofIBBPBBPBBPBB . . . in the original file and the reverse file.

FIG. 16(A) illustrates an original file. The numbers, which are assignedto each picture in the FIG. 16(A), are serial numbers and indicate thedisplay order of each frame in the source video data. The serial numbersstart from the first picture of a first GOP in FIG. 16(A) in order tosimplify the explanation, although they actually start from the head ofa file. Each GOP basically includes a same number of pictures in oneGOP, for example the picture number P of each GOP is “12” in the FIG.16(A). However, the picture number “P_(last)” of the last GOP“GOP_(last)” is “11” (“P_(last)”=11). This is because the total numberof frames in a source video data is not always “k” times the picturenumber P (where “k” is an integer and not zero). As a result, thepicture number “P_(last)” of the last GOP turns out to be the remainderwhen the number of all frames in the source video data is divided by thepicture number P.

FIG. 16(B) illustrates a reverse file. The reverse file can be generatedby arranging the frames in the source video data in reverse order and byMPEG2 encoding. The numbers, which are assigned to each picture in theFIG. 16(B), are serial numbers and indicate the display order of eachframe in the source video data. The values of the serial numbers in areverse file therefore gradually become smaller toward the end. Each GOPin the reverse file has the same number of pictures as that of GOPs inthe original file, for example the picture number of each GOP is “12” inthis embodiment. However, the picture number P1 of the first GOP “GOP₁”is “10” (P1=10). The process for determining the picture number P1 willbe explained later.

(b) Switching of the Reproduction Modes

FIGS. 17(A), 17(B), and 17(C) are explanatory views illustrating aswitch from an original file to a reverse file. FIG. 17(A) showspictures that are read-out from the original file when the reproductionmode is a normal play mode. The transmission server 10 receives a modeswitching request for a reverse mode from the reproduction apparatus 20when reading out “GOPi” from the original file. “GOPi” is “i^(th)” GOPand the second last GOP among the original file. In this embodiment,first all pictures in GOPi are read-out upon receiving the modeswitching request, including picture B10 which is arranged at the lastin GOPi. Then a file to be read-out is switched to the reverse file.

FIG. 17(B) shows pictures that are read-out from the reverse file whenthe reproduction mode is a reverse mode. The pictures in the reversefile are read-out one after another from the first picture 110 in thesecond GOP “GOP2”, transmitted to and output on the reproductionapparatus 20. However, output of the pictures B12, B11 in GOP2 isskipped at the reproduction apparatus 20 since these pictures refer topictures among GOP1 in the reverse file.

FIG. 17(C) is an explanatory view of pictures output on the reproductionapparatus 20 before and after the reproduction mode is switched.

Setting a broken_link_bit to “1” allows the reproduction apparatus 20 toskip the output of the pictures B12, B11 in GOP2 of the reverse file.The broken link bit is arranged in each header of each GOP in thereverse file. This setting enables skipping the output of pictures in aGOP referring to other pictures in other GOPs. Eventually, an open-GOPtype and a closed-GOP type can be used as a reverse file.

A consecutive numbering of serial numbers for pictures to be read-outbefore and after the switching of the reproduction mode facilitatessmoother playback when the reproduction mode is switched. In FIG. 17(C),the serial number consecutively increases “ . . . 9, 10, 11” before theswitching of the reproduction mode, and consecutively decreases “10, 9,8 . . . ” after the switching of the reproduction mode. The last serialnumber in the original file and the first serial number in the reversefile are consecutive before and after the switching of the reproductionmode. This consecutive change in serial numbers of output picturesrealizes smoother playback when switching the reproduction mode.Although serial number before and after the switching of thereproduction mode are not necessarily consecutive, the smaller thedifference between the last serial number in a pre-switched file and thefirst serial number in a post-switched file is, the smoother playbackwill be performed when switching the reproduction mode.

(c) Generation of a Reverse File

FIG. 18 is an explanatory view of a reverse file generated from a sourcevideo data. The generation process of the reverse file includes foursteps: (i) arrangement of frames in the source video data, (ii)grouping, (iii) determination of parameters used for encoding, and (iv)encoding. Each step will be explained below.

(i) Arrangement of Frames in the Source Video Data

The generation unit 105 a in the transmission server 10 generates“reverse-source-video” data by rearranging frames in the source videodata in reverse order. Fields included in each frame are also rearrangedin the reverse order in time sequence.

FIGS. 19(A) and 19(B) are an explanatory view of fields rearranged inreverse order in time sequence. “OF” in the FIG. 19 indicates an oddfield, and “EF” in the FIG. 19 indicates an even field. The FIG. 19(A)illustrates one method of rearranging fields, which is deleting the topline, and adding a dummy line DL1 as a bottom line in each odd field ineach frame. The FIG. 19(B) illustrates another method of rearrangingfields, which is deleting the bottom line, and adding a dummy line DL2as a top line in each even field in each frame. The value of the dummylines DL1, DL2 may be black, or the same value of a line next to a dummyline in the odd or even field.

(ii) Grouping

The generation unit 105 a generates groups by grouping frames in thereverse-source-video data. These groups correspond to GOPs in thereverse file to be generated. Each group basically contains the samenumber of frames as that of pictures in each GOP of the original file.However, the first group and the last group contain frames whose numberis defined by the following formulas where P_(last) is the number ofpictures in the last GOP in the original file, and K is the number ofB-pictures consecutively follows the first I-picture in each GOP in theoriginal file:

-   -   (the number of frames in the first group)=P_(last)−K+1 (in the        case of (P_(last)−K+1)>0)    -   (the number of frames in the first group)=P_(last)−K+1+P (in the        case of (P_(last)−K+1)=<0)    -   (the number of frames in the last group)=K−1 (in the case of        (K−1)>0)    -   (the number of frames in the last group)=K−1+P (in the case of        (K−1)=<0)

This embodiment shows an example of P_(last)=11, K=2. The grouping byusing the above-mentioned formulas makes the last GOP in the originalfile to correspond to the first GOP “GOP1” in the reverse file. Further,this grouping also makes Jth GOP “GOPj” in the original file tocorrespond to Rh GOP “GOPh” in the reverse file, which means that thefirst picture of GOPh in the reverse file is read-out when switching thereproduction modes during performing read-out of the pictures in GOPjfrom the original file. The relationship of H and J is defined by thefollowing formulas where L is the total number of GOPs included in theoriginal file:

-   -   H=L−J+1 (in the case of (P_(last)−K+1)>0)    -   H=L−J (in the case of (P_(last)−K+1)=<0)

FIG. 20 is an explanatory view of a switching table. The correspondenceof GOPs in the original file to GOPs in the reverse file may be storedas a switching table. This table facilitates a quick determination of aGOP to be read-out immediately after switching the reproduction mode.

(iii) Determination of Parameters Used for Encoding

The generation unit 105 a sends a picture pattern of I, P, and B to MPEGencoder 109 which has the same value of “K” as the original file. Thisdesignation of a picture pattern allows GOPs to have the same value of“K” as that of the original file except for the case in which the lastGOP has pictures less than “K+1” and thus has different value of “K”.The picture pattern of I, P, and B is determined so that the serialnumber of the first I-picture of Hth group in the reverse-source-videodata fulfills the following formula (1). This limitation to the serialnumber keeps the difference between the serial numbers of pre-switchingand post-switching small.

(The serial number of the second last P-picture in Jth GOP in theoriginal file)=<(The serial number of the first I-picture in Hth groupin the reverse-source-video data)=<(The serial number of the firstI-picture in (J+1)th GOP in the original file)  (1)

Preferably, the picture pattern of I, P, and B is determined so that theserial numbers of I-pictures in the reverse-source-video data fulfillthe following formula (2).

(The serial number of the last P-picture in Jth GOP in the originalfile)=<(The serial number of the first I-picture in Hth group in thereverse-source-video data)=<(The serial number of the first I-picture in(J+1)th GOP in the original file)  (2)

In the above formula (2), since the serial number of the last P-picturein Ph GOP in the original file and the serial number of the firstI-picture in Hth group in the reverse-source-video data are serial, itfacilitates smoother playback when switching the reproduction mode.

Concrete explanation will be given with reference to FIG. 17. FIG. 17illustrates an example in which J=i, H=2. The serial number of the firstI-picture in GOP2 is “10”. The serial number of the second lastP-picture in GOPi in the original file is “8”. The serial number of thefirst I-picture in the (i+1)^(th) GOP in the original file is “14”.Therefore, the serial number of the first I-picture in GOP2 ispreferably “8” or more and “14” or less.

More preferable example in order to perform smoother playback whenswitching the reproduction modes is when the serial number of the lastP-picture in GOPi in the original file is “11”, so that the serialnumber of the first I-picture of GOP2 is preferably “11” or more and“14” or less. The serial number of the first I-picture in GOP2 in thereverse-source-video data is further preferably “10”. This is serial to“11” and smaller than “11”. Accordingly, smooth playback is performedwhen switching the reproduction mode.

(iv) Encoding

The generation unit 105 a outputs the reverse-source-video data to theMPEG encoder 109 together with parameters used for encoding. Theparameters include serial numbers of I-pictures and the picture patternof I, P, and B. The MPEG encoder 109 encodes the frames rearranged inthe reverse order in time sequence based on the input parameters, andgenerates a reverse file. The reverse file is stored in the HDD 102, forexample.

Process

FIG. 21 illustrates a flowchart of a method for generating a reversefile executed by the CPU 105 whereby the CPU 105 functions as thegeneration unit 105 a. This process is initiated, for example, when newsource video data is written in to the HDD 102.

Step S501: The CPU 105 read out the source video data from the HDD102.

Step S502: The CPU 105 generates reverse-source-video data byrearranging the frames and fields in each frame in the source video datain reverse order.

Step S503: The CPU 105 groups the frames in the reverse-source-videodata. First, the numbers of pictures in the first GOP, the last GOP, andother GOPs are determined. Then, grouping is performed according to thedetermined picture numbers.

Step S504: The CPU 105 determines parameters used for encoding thereverse-source-video data.

Step S505: The CPU 105 outputs the parameters determined in the stepS504 to the MPEG encoder 109. Then, the MPEG encoder 109 generates thereverse file.

In this way, the transmission server 10 generates a reverse file forreverse reproduction at n−(n=1) times playback.

Further embodiments

(A) In the first embodiment mentioned above, the original file and afast-forward file are stored in the HDD 102. Alternatively, these filesmay be stored in the removable storage medium. In such a case, thetransmission server 10 obtains encoded data files from the removablestorage medium or outside resource, and transmits them to thereproduction apparatus 20. A stream table and an offset table arepreferably also stored in the same storage medium where encoded datafiles are stored thereon.

(B) Unlike the first and second embodiments, it is possible to generatea fast-forward file by removing pictures from an original file which areencoded and decoded by ref-erencing preceding frames. For example, afast-forward file can be generated by removing P-pictures from an MPEG 2format original file.

A P-picture may be removed when there are no B-pictures proceeding to orsubsequent to the P-picture and when it is the last P-picture in a GOP.Accordingly, a P-picture may be removed from a GOP in order of reversesequence when reproduction at the desired play speed cannot be performedeven if all B-pictures are removed in a GOP.

A fast-forward file can be generated likewise from an original filewhich has no B-pictures. The fast-forward file can be obtained byremoving P-pictures from the original file in the order of a reversesequence.

(C) Unlike the first and second embodiments, a fast-forward file can begenerated independently from an original file. The following willconsider two cases-firstly, the case when an I-picture is arranged at afixed position in each GOP in the sequence of pictures, and secondly,the case when an I-picture is generated at random positions in each GOPin the original file.

(C-1) Since a CPU manages an encoder so that it arranges an I-picture atthe fixed position in each GOP in an original file, it assigns a picturepattern of I, P, and B to an encoder so that reproduction at adesignated play speed can be performed and an I-picture can be arrangedat the fixed position in each GOP. This enables an encoder to generatean original file and a fast-forward file independently. It is alsopossible that two encoders generate an original file and a fast-forwardfile separately.

(C-2) In this case, a main encoder, a sub-encoder and an outside circuitare employed in a computer which generates the original and fast-forwardfiles. The computer can execute the processes illustrated in FIG. 22(A)and FIG. 22(B). In the process of FIG. 22(A), the main encoder generatesthe original file (step S601). The sub-encoder generates thefast-forward file. The outside circuit outputs to the sub-encoder timeinformation indicating timing at which the main encoder generates anI-pictures. In addition, the outside circuit removes pictures so thatthe designated reproduction speed can be realized. The number ofpictures to be removed is output from the main encoder to thesub-encoder (step S602). The removed pictures are pictures other thanI-pictures encoded by the main encoder. The main encoder preferablynotifies the generation of an I-picture to the outside circuit so thatthe outside circuit can selectively remove pictures (step S603). Thisnotification enables generation of an offset table which associates anaddress of an I-picture in the original file with an address of acor-responding I-picture in a fast-forward file.

The process of FIG. 22(B) includes the same steps S601 and S602 as theprocess in FIG. 22(A). After the step S602, the outside circuit can alsoinput predetermined dummy data into the sub-encoder as it removespictures (step S604). This process enables the relative addresses ofI-pictures arranged in each GOP to be identical between an original fileand a fast-forward file.

(D) The present invention encompasses a program for executing the methoddiscussed above on a computer, as well as a computer readable storagemedium to which such a program is recorded. The program may bedownloadable. Examples of storage medium include a computerreadable/writable flexible disk, a hard disk, semi-conductor memory, aCD-ROM, a DVD and a magnet-optic disk (MO).

While only selected embodiments have been chosen to illustrate thepresent invention, it will be apparent to those skilled in the art fromthis disclosure that various changes and modifications can be madeherein without departing from the scope of the invention defined independed claims. Furthermore, the detailed descriptions of theembodiments according to the present invention provided for illustrationonly, and not for the purpose of limiting the invention as defined bythe present claims and specifications.

INDUSTRIAL APPLICABILITY

The present invention is preferably applied to reproduction of digitalvideo data.

1. A data generating method comprising: generating normal play data byencoding low-compression or non-compression video data, the normal playdata including intra frames (I) and non-intra frames, the intra framesbeing decoded independently and the non-intra frames being decoded byreferencing preceding and/or subsequent frames; generating fast-forwarddata including intra frames (I) in the normal play data and a part ofnon-intra frames in the normal play data; and associating the intraframes in the normal play data with the intra frames in the fast-forwarddata.
 2. A data generating method of claim 1 wherein the fast-forwarddata is generated by selectively obtaining a part of the non-intraframes and the intra frames while the non-intra frames and the intraframes are being generated one after another in the step of generatingthe normal play data.
 3. A data generating method of claim 1 wherein thefast-forward data is generated by removing a part of the non-intraframes from the normal play data after the normal play data isgenerated.
 4. A data generating method comprising: generating normalplay data by encoding low-compression or non-compression video data, thenormal play data including intra frames and non-intra frames, the intraframes being decoded independently and the non-intra frames beingdecoded by referencing preceding and/or subsequent frames; andgenerating fast-forward data, the fast-forward data including intraframes (I) in the normal play data, a part of non-intra frames in thenormal play data, and dummy data, the dummy data replacing the othernon-intra frames included only in the normal play data, wherein eachintra frame in the normal play data and each intra-frame in thefast-forward data have the same relative address which is relative tothe heads of the normal play data and the fast-forward datarespectively.
 5. A data generating method of claim 4 wherein thefast-forward data is generated by selectively obtaining a part of thenon-intra frames and the intra frames while the non-intra frames andintra frames are being generated one after another in the step ofgenerating the normal play data.
 6. A data generating method of claim 4wherein the fast-forward data is generated by removing a part of thenon-intra frames in the normal play data after generating the normalplay data, and inserting dummy data that replaces the removed non-intraframes.
 7. A storage medium with encoded video data thereon, the encodedvideo data comprising normal play data and fast-forward data, the normalplay data including intra frames and non-intra frames, the intra framesbeing decoded independently and the non-intra frames being decoded byreferencing preceding and/or subsequent frames, the fast-forward dataincluding intra frames in the normal play data and a part of non-intraframes in the normal play data.